1. Field of Invention
The present invention relates generally to the field of computerized devices, networks, and buses. More particularly, in one exemplary aspect, the present invention is directed to efficiently transporting data through network tunnels.
2. Description of Related Technology
Within the context of data networking, a “tunnel” is a network communications channel between networked elements that embeds a network protocol (that is shared by the networked elements) within a transit protocol (which is native to the transit or bearer network). Tunneling is commonly used to logically connect sub-networks that cannot be physically combined. For example, private networks can establish secure tunnels through a public network to create a shared virtual private network. Tunneling can also be used to embed several network protocols over a common transport. For example, the incipient Thunderbolt™ high-speed data bus can support PCI-Express™ (Peripheral Component Interconnect Express) and DisplayPort™ data simultaneously over a single, cost effective interface.
Current implementations of the Thunderbolt interface provide a PCI Express (PCIe) tunnel, DisplayPort (DP) tunnel, and a general-purpose Native Host Interface (NHI)/User Transport Interface (UTI) tunnel within a single serial data interface. During operation, a PCIe stream and DP stream are packetized into Thunderbolt packets for transport. The packets are interleaved together for transmission over a shared Thunderbolt connection, and then de-interleaved into their respective constituent streams at the receiver. Since neither PCIe nor DP data streams are modified in transit, the resulting streams are natively compatible with existing PCI Express and DisplayPort hardware and software.
However, it is widely appreciated that bus protocols widely vary in capabilities and functionality. For example, PCIe does not provide a way to reserve bandwidth for a given data stream. Instead, the PCIe specification defines traffic classes and virtual channels, which can be used to prioritize transactions within a typical PCIe system. Unfortunately, these capabilities have not been included in current Thunderbolt solutions; existing Thunderbolt transceivers do not support virtual channels or traffic classes used within the PCIe protocol. Instead, Thunderbolt transceivers can only prioritize traffic at the Converged Input/Output (CIO) layer (as used herein, the Converged Input/Output (CIO) protocol is the transit protocol for Thunderbolt transceivers). For example, a Thunderbolt transceiver can only prioritize DP traffic over PCIe traffic.
Moreover, Thunderbolt hot-pluggable transports will ideally provide generic, ubiquitous hardware and software interfaces, similar to USB (Universal Serial Bus) and FireWire™ devices. To these ends, current research is directed to minimizing the use of specialty device drivers for Thunderbolt devices, so as to offer “transparent” operation to customers and developers alike.
Accordingly, solutions are needed to prioritize certain types of traffic within tunneled PCIe streams, for use with Thunderbolt transport technology. Ideally, such solutions should not require specialized software or hardware structures, and be effectively transparent to the user. More generally, solutions are needed for enabling certain protocol-specific capabilities within tunneled data networks.